Tutorial Membuat Fitur Login di Laravel

Posted on 16 August 2024


Untuk membuat fitur login di Laravel, ada beberapa persyaratan yang perlu dipenuhi agar proses autentikasi dapat berjalan dengan baik:

1. Instalasi Laravel:

  • PHP 8.0 atau lebih baru: Laravel memerlukan versi PHP yang cukup baru untuk dapat menjalankan framework-nya.
  • Composer: Composer digunakan untuk mengelola dependensi Laravel.
  • Database: Pastikan Anda memiliki database yang didukung oleh Laravel seperti MySQL, PostgreSQL, SQLite, atau SQL Server.

2. Database yang Dikonfigurasi:

  • Tabel users: Tabel ini biasanya sudah disediakan oleh Laravel dan mencakup kolom-kolom yang diperlukan untuk autentikasi seperti id, name, email, password, remember_token, dan created_at.

  • Migrasi Database: Pastikan tabel users sudah ada dengan menjalankan migrasi:

    php artisan migrate


    Untuk membuat fitur login di Laravel, Anda dapat mengikuti langkah-langkah berikut:

    1. Instalasi Laravel:

    Pastikan Anda sudah menginstal Laravel di sistem Anda. Jika belum, instalasi bisa dilakukan dengan perintah berikut:

    composer create-project --prefer-dist laravel/laravel project-name

    2. Instalasi Paket Autentikasi:

    Laravel sudah menyediakan sistem autentikasi bawaan. Jika Anda menggunakan Laravel 8 atau lebih baru, Anda dapat menggunakan Jetstream, Breeze, atau membuat sistem login secara manual.

    Contoh dengan Laravel Breeze:

    composer require laravel/breeze --dev
    php artisan breeze:install npm install && npm run dev php artisan migrate

    3. Menjalankan Migrasi:

    Jetstream atau Breeze akan membuat beberapa tabel terkait pengguna di database Anda. Jalankan perintah berikut untuk melakukan migrasi:

    php artisan migrate

    4. Pengaturan Rute untuk Login:

    Laravel Breeze dan Jetstream sudah menyediakan rute bawaan untuk login. Anda bisa melihatnya di routes/web.php:

    use App\Http\Controllers\Auth\AuthenticatedSessionController; Route::get('/login', [AuthenticatedSessionController::class, 'create']) ->name('login'); Route::post('/login', [AuthenticatedSessionController::class, 'store']);

    5. Tampilan Login:

    Jika Anda menggunakan Laravel Breeze atau Jetstream, tampilan login sudah otomatis disediakan. Namun, jika Anda ingin membuat tampilan login sendiri, buat file resources/views/auth/login.blade.php dan isi dengan form login:

    @extends('layouts.app') @section('content') <div class="container"> <div class="row justify-content-center"> <div class="col-md-8"> <div class="card"> <div class="card-header">{{ __('Login') }}</div> <div class="card-body"> <form method="POST" action="{{ route('login') }}"> @csrf <div class="form-group row"> <label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label> <div class="col-md-6"> <input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus> @error('email') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror </div> </div> <div class="form-group row"> <label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label> <div class="col-md-6"> <input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="current-password"> @error('password') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror </div> </div> <div class="form-group row"> <div class="col-md-6 offset-md-4"> <div class="form-check"> <input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}> <label class="form-check-label" for="remember"> {{ __('Remember Me') }} </label> </div> </div> </div> <div class="form-group row mb-0"> <div class="col-md-8 offset-md-4"> <button type="submit" class="btn btn-primary"> {{ __('Login') }} </button> @if (Route::has('password.request')) <a class="btn btn-link" href="{{ route('password.request') }}"> {{ __('Forgot Your Password?') }} </a> @endif </div> </div> </form> </div> </div> </div> </div> </div> @endsection

    6. Pengaturan Redirect Setelah Login:

    Anda bisa mengatur halaman mana yang dituju setelah login berhasil dengan mengubah properti $redirectTo di AuthenticatedSessionController:

    protected $redirectTo = '/dashboard';

    Atau, di Laravel 8 ke atas, Anda bisa mengatur ini di RouteServiceProvider:

    public const HOME = '/dashboard';

    7. Pengaturan Middleware:

    Pastikan Anda menambahkan middleware auth ke rute yang memerlukan autentikasi. Misalnya, untuk halaman dashboard:

    Route::get('/dashboard', function () { return view('dashboard'); })->middleware(['auth']);

    8. Menjalankan Aplikasi:

    Sekarang, jalankan server Laravel Anda untuk melihat hasilnya:

    php artisan serve

    Buka browser dan akses http://localhost:8000/login untuk melihat halaman login.

    Dengan langkah-langkah di atas, Anda sudah dapat membuat fitur login di Laravel.